import json

import requests


# HTTP的调用，
# 1.每个函数调用都得记住url地址，参数如何传递的，返回数据如何解析的
# add函数的调用就像本地调用一样
# resp = requests.get("http://127.0.0.1:8003", params={
#     "a": 10,
#     "b": 20
# })
#
# print(resp.json())


# 自己实现了一个demo级别的rpc封装 代理
class Client:
    def __init__(self, url):
        self.url = url

    def add(self, a: int, b: int):
        # 解决了
        # 1. call id
        # 2. 序列化和反序列化
        # 3. 屏蔽了传输协议 http
        resp = requests.get(self.url, params={
            "a": a,
            "b": b
        })
        return resp.json().get("result", 0)


# 这不就是写一个web服务器，无非就是自己封装一下client
# 不想知道过多的细节，只想像本地一样调用
if __name__ == '__main__':
    client = Client("http://127.0.0.1:8003")
    res = client.add(10, 100)
    print(res)
    res = client.add(2, 3)
    print(res)
